package com.yuandian.po;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yuandian.po.MultipleTableInfo;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 搜索的基类
 * </p>
 *
 * @author: tangqingchun
 * @date: 2020-07-08
 */
public class BaseSearch implements Serializable {

    /**
     * 要查询的表名
     */
    private String tableName;

    /**
     * 要查询的表名集合
     */
    private List<String> tableNameList;

    /**
     * 要查询的表信息集
     */
    private List<MultipleTableInfo> multipleTableInfoList;

    /**
     * 刻度
     */
	@ApiModelProperty(value = "刻度")
    private Integer scale;

    /**
     * 开始时间
     */
	@ApiModelProperty(value = "开始时间")
    private String startTime;

    /**
     * 结束时间
     */
	@ApiModelProperty(value = "结束时间")
    private String endTime;

    /**
     * 权限参数-主要存放数据权限等扩展参数，禁止用于页面传来的参数
     */
    @JsonIgnore
    private Map<String, Object> params;

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public List<String> getTableNameList() {
        return tableNameList;
    }

    public void setTableNameList(List<String> tableNameList) {
        this.tableNameList = tableNameList;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

    public List<MultipleTableInfo> getMultipleTableInfoList() {
        return multipleTableInfoList;
    }

    public void setMultipleTableInfoList(List<MultipleTableInfo> multipleTableInfoList) {
        this.multipleTableInfoList = multipleTableInfoList;
    }

    public Integer getScale() {
        return scale;
    }

    public void setScale(Integer scale) {
        this.scale = scale;
    }
}
